package com.mapstruct.mapstructmapper;

import com.mapstruct.domain.Car;
import com.mapstruct.dto.CarDto;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;

/**
 * mapstruct工具的转换接口
 */
@Mapper
public interface CarMapper {

    CarMapper INSTANCE = Mappers.getMapper( CarMapper.class );

    /**
     * 1.原类与目标类属性一致，名称相同，不用写。
     * 2.原类与目标类属性一致，名称不相同，需要映射。
     * 3.原类的值对象名与目标类名称一致，需要映射。
     * @param car
     * @return
     */
    @Mappings({
            @Mapping(source = "numberOfSeats",target = "seatCount"),
            @Mapping(source = "type.type",target = "type")
    })
    CarDto carToCarDto(Car car);






}
